// pages/user/user.js
// 定义数据库
const db = wx.cloud.database();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        
        // 用户昵称
        nickname:'',
        // 用户头像
        avatarUrl:'',

        icon_list:[
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/manager_setting.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/modify.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon4.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon2.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon1.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon5.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon3.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon7.png',
            'cloud://cloud1-0gi6arka36ad54a9.636c-cloud1-0gi6arka36ad54a9-1310110789/village characteristic/icon/my_cardData_icon6.png',
        ],
        // 用户关注
        // attention_num:[],
        // 用户粉丝
        // fans_num:[],
        // 用户被点赞量
        // begood_num:[],
        // 用户勋章数
        // medal_num:[],
        isfingerPrint : false,    //可否使用指纹识别  默认false
    },

    // 数据库操作————登录/注册 
    db_operate:function(){
        let that = this
        // console.log('使用数据库');
        // 检查是否存在该用户(以检查用户昵称为例)
        let promise = new Promise((reslove,reject)=>{
            db.collection('user-information').where({
                nickname:wx.getStorageSync('nickname'),
            }).get().then(res=>{
                console.log(res);
                // console.log(res.data.length);
                // 如果不存在该用户
                if(res.data.length === 0){
                    // 初始化用户数据
                    // 将该用户信息添加到数据库
                    db.collection('user-information').add({
                        data:{
                            nickname: wx.getStorageSync('nickname'),
                            avatarUrl: wx.getStorageSync('avatarUrl'),
                            attention_num: 0,
                            fans_num: 0,
                            begood_num: 0,
                            medal_num: 0,
                            collections_list:[],
                            collectionsFarming_list:[],
                            collectionsLaws_list:[],
                        },
                        success: res=>{
                            console.log('用户不存在，已成功添加到数据库')
                        }
                    })
                }
                // 如果存在该用户
                else{
                    // 加载用户数据,存到缓存里
                    wx.setStorageSync('openid', res.data[0]._openid)
                    // wx.setStorageSync('attention_num', res.data[0].attention_num);
                    // wx.setStorageSync('fans_num', res.data[0].fans_num);
                    // wx.setStorageSync('begood_num', res.data[0].begood_num);
                    // wx.setStorageSync('medal_num', res.data[0].medal_num);
                    console.log("用户存在，已从数据库加载完毕")
                }
                reslove()
            })
        })
        promise.then(res=>{
            that.onLoad()
        })
    },

    // 登录函数
    login: function(){
        let that = this
        wx.getUserProfile({
            desc: '获取你的昵称、头像、地区及性别',
            success: res => {
                //控制台输出结果
                console.log(res.userInfo)
                console.log("获取成功");
                // 将个人信息存入缓存
                wx.setStorageSync('login', true)
                wx.setStorage('openid',res.userInfo.openid)
                wx.setStorageSync('avatarUrl', res.userInfo.avatarUrl);
                wx.setStorageSync('nickname', res.userInfo.nickName);
                console.log("已成功加入缓存");
                // 检查是否需要加入数据库(辨别登录和注册)
                that.db_operate();
                // 重新加载数据 (设置定时器，实测时间大于等于290毫秒，即可避免数据不同步的问题)
                // setTimeout(function(){
                //     that.onLoad();
                // },500)
                
                
            },
            fail: res => {
                //拒绝授权
                // console.log(res)
                return;
            }
        })
    },

    //跳转课程页面
    jumpCollectionClass:function(){
        wx.navigateTo({
            url: '/pages/collectionClass/collectionClass',
        })
    },

    //跳转收藏页面
    jumpCollectionVideo:function(){
        wx.navigateTo({
            url: '/pages/collectionVideo/collectionVideo',
        })
    },

    //跳转消息页面
    jumpMessage:function(){
        wx.navigateTo({
            url: '/pages/Message/Message',
        })
    },
    
    //跳转积分页面
    jumpScore:function(){
        // wx.navigateTo({
        //     url: '',
        // })
        wx.showToast({
          title: '功能开发中',
          icon:"error",
          duration:1000
        })
    },
    
    //跳转勋章页面
    jumpStamp:function(){
        // wx.navigateTo({
        //     url: '',
        // })
        wx.showToast({
            title: '功能开发中',
            icon:"error",
            duration:1000
          })
    },
    
    //跳转足迹页面
    jumpMemory:function(){
        // wx.navigateTo({
        //     url: '',
        // })
        wx.showToast({
            title: '功能开发中',
            icon:"error",
            duration:1000
          })
    },

    // 跳转设置页面
    jumpSetting:function(){
        wx.navigateTo({
            url: '/pages/setting/setting',
        })
    },

    // 跳转管理数据页面
    jumpMangeData:function(){
        let that = this
        //查看支持的生物认证   比如ios的指纹识别   安卓部分机器是不能用指纹识别的
        wx.checkIsSupportSoterAuthentication({
            success(res) {
                for (let i in res.supportMode){
                    if (res.supportMode[i] == 'fingerPrint'){
                        // console.log("支持指纹识别", res.supportMode[i]);
                        that.setData({
                            isfingerPrint : true
                        })
                    } 
                }
                let boole = that.data.isfingerPrint
                if (boole) {
                    wx.checkIsSoterEnrolledInDevice({
                        checkAuthMode: 'fingerPrint',
                        success(res) {
                            if (res.isEnrolled == 0){
                                wx.showModal({
                                    title: '提示',
                                    content: '无指纹信息,可直接进入',
                                    showCancel:false,
                                    success: function (res) {
                                        if (res.confirm) {
                                            wx.navigateTo({
                                                url:"/pages/manageData/manageData",
                                            })
                                        } 
                                    }
                                })
                            }
                        },
                        fail(res){
                        }
                    })
                    wx.startSoterAuthentication({
                        requestAuthModes: ['fingerPrint'],
                        challenge: '123456',
                        authContent: '指纹验证通过后，方可进入管理界面',
                        success(res) {
                            // console.log("识别成功",res)
                            wx.navigateTo({
                                url:"/pages/manageData/manageData",
                            })
                        },
                        fail(res){
                        }
                    })
                }
                else{
                    // show("提示",'不可以使用指纹识别',false);
                    wx.showModal({
                        title: '提示',
                        content: '该设备无法进行指纹识别',
                        showCancel:false
                    })
                }
            },
            fail(res){
                wx.showModal({
                    title: '提示',
                    content: '该设备不支持指纹识别',
                    showCancel:false
                })
            }
        })
        // 电脑通道
        wx.navigateTo({
            url:"/pages/manageData/manageData",
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        console.log('正在重新加载数据')
        let that = this
        that.setData({
            openid:wx.getStorageSync('openid'),
            login: wx.getStorageSync('login'),
            avatarUrl: wx.getStorageSync('avatarUrl'),
            nickname: wx.getStorageSync('nickname'),
            // attention_num: wx.getStorageSync('attention_num'),
            // fans_num: wx.getStorageSync('fans_num'),
            // begood_num: wx.getStorageSync('begood_num'),
            // medal_num: wx.getStorageSync('medal_num'),
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
        this.setInitialRenderingCache({
            icon_list:this.data.icon_list
        })
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.setData({
            login: wx.getStorageSync('login'),
            avatarUrl: wx.getStorageSync('avatarUrl'),
            nickname: wx.getStorageSync('nickname'),
            attention_num: wx.getStorageSync('attention_num'),
            fans_num: wx.getStorageSync('fans_num'),
            begood_num: wx.getStorageSync('begood_num'),
            medal_num: wx.getStorageSync('medal_num')
        })
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})
function show(tit,msg,q,succ,fail){
    wx.showModal({
        title: tit,
        content: msg,
        showCancel:q,
        success: function (res) {
            if (res.confirm) {
                if (succ){
                    succ();
                }
            } else if (res.cancel) {
                if (fail) {
                    fail();
                }
            }
        }
    })
}